// pages/select_class/index.js
import { getAvailableClass, getChoseClass,addSelectCourse } from '../../api/selectclass'; 

Page({
  data: {
    availableCourses: [],  // 可选课程
    selectedCourses: [],   // 已选课程
  },

  // 页面加载时执行
  async onLoad() {
    try {
      // 从缓存中获取 userID
      const userID = wx.getStorageSync('userID');
      
      // 从服务器获取可选课程和已选课程数据
      const res = await getAvailableClass(userID);
      const res1 = await getChoseClass(userID);
      
      // 输出响应数据查看结构
      console.log('---r', res, res1.data);
      if(res.data.length!=0){
        const availableCourses = res.data.map(course => ({
          ...course,
          courseTime: this.transformCourseTime(course.courseTime),
        }));
        this.setData({
          availableCourses,
        });
      }
      if(res1.data!==null&&res1.data.length!=0){
        const selectedCourses = res1.data.map(course => ({
          ...course,
          courseTime: this.transformCourseTime(course.courseTime),
        }));
        console.log('sa',selectedCourses);
        this.setData({
          selectedCourses,
        });
      }
      // 格式化可选课程中的课程时间
      
      
      // 格式化已选课程中的课程时间
      
      
      // 设置页面数据
      
    } catch (error) {
      console.error('获取课程数据失败：', error);
    }
  },

  // 课程时间格式化函数
 // 课程时间格式化函数
transformCourseTime(courseTime) {
  if (!courseTime) {
    return ''; // 如果 courseTime 为 null 或 undefined，返回空字符串
  }

  const daysOfWeek = ['星期一', '星期二', '星期三', '星期四', '星期五'];

  // 拆分 courseTime 字符串，处理多个星期几的情况
  const weekParts = courseTime.split('%');
  const transformedTime = weekParts.map(weekPart => {
    const timeSlots = weekPart.split(',');

    return timeSlots.map(slot => {
      const [day, start, end] = slot.split('-');
      const weekDay = daysOfWeek[parseInt(day) - 1]; // 获取星期几
      return `${weekDay}：第${start}大节${end ? `，第${end}大节` : ''}`; // 格式化为所需的格式
    }).join('，'); // 将同一天的所有时间点连接起来
  }).join('；'); // 用分号分隔不同星期几的课程安排

  return transformedTime;
},


  

  // 退选函数
  removeCourse(event) {
    const index = event.currentTarget.dataset.index;
    const course = this.data.selectedCourses[index];
    // 执行退选逻辑，可能涉及更新数据库等
    console.log('退选课程', course);
  },
  async selectCourse(event) {
    const userID = wx.getStorageSync('userID');
    const courseId = event.currentTarget.dataset.courseid;
  
    console.log('选课的课程ID:', courseId);
  
    // 调用选课接口，向后台发送选课请求
    const res = await addSelectCourse(userID, courseId);
    console.log('选课结果', res);
  
    if (res.code === 200) {
      wx.showToast({
        title: '选课成功',
        icon: 'success',
      });
  
      // 更新可选课程列表，移除已选的课程
      const updatedAvailableCourses = this.data.availableCourses.filter(course => course.courseId !== courseId);
      // 将选中的课程添加到已选课程列表
      const selectedCourse = this.data.availableCourses.find(course => course.courseId === courseId);
      const updatedSelectedCourses = selectedCourse ? [...this.data.selectedCourses, selectedCourse] : [...this.data.selectedCourses];

  
      // 更新页面数据
      this.setData({
        availableCourses: updatedAvailableCourses,
        selectedCourses: updatedSelectedCourses,
      });
      console.log('dsd',updatedSelectedCourses);
    } else {
      // 如果选课失败，显示提示信息
      wx.showToast({
        title: res.msg,
        icon: 'none',
      });
    }
  }
  
  
});
